package clases;

import java.sql.ResultSet;
import java.util.ArrayList;

import javax.swing.JOptionPane;

public class Roles_class extends Conexion{

	String codigo;
	String nombre; 
	Boolean fichacrear; 
	Boolean fichabuscar; 
	Boolean horariocrear; 
	Boolean horariobuscar; 
	Boolean asignarhorario;
	Boolean buscarhorarioasignado;
	Boolean asistenciacrear; 
	Boolean asistenciabuscar; 
	Boolean asistenciacargar; 
	Boolean pagoscrear; 
	Boolean pagosbuscar;
	Boolean pagosplanilla; 
	Boolean ocupacionescrear; 
	Boolean ocupacionesbuscar; 
	Boolean contratacionescrear; 
	Boolean contratacionesbuscar; 
	Boolean estadocivilcrear;
	Boolean nacionalidadcrear; 
	Boolean nacionalidadbuscar; 
	Boolean idiomacrear; 
	Boolean idiomabuscar; 
	Boolean departamentocrear; 
	Boolean departamentobuscar;
	Boolean municipiocrear; 
	Boolean municipiobuscar; 
	Boolean gradoacademicocrear; 
	Boolean gradoacademicobuscar; 
	Boolean usuarioscrear; 
	Boolean usuariosbuscar;
	Boolean rolescrear; 
	Boolean rolesbuscar;
	private String query;
	private ArrayList<String> parametros;
	
	
	public Roles_class(){}
	
	public Roles_class(String codigo)
	{
		this.codigo=codigo;
	}
	
	public Roles_class(String codigo, String nombre, Boolean fichacrear, Boolean fichabuscar, Boolean horariocrear, Boolean horariobuscar, Boolean asignarhorario
			, Boolean buscarhorarioasignado, Boolean asistenciacrear, Boolean asistenciabuscar, Boolean asistenciacargar, Boolean pagoscrear, Boolean pagosbuscar
			, Boolean pagosplanilla, Boolean ocupacionescrear, Boolean ocupacionesbuscar, Boolean contratacionescrear, Boolean contratacionesbuscar, Boolean estadocivilcrear
			, Boolean nacionalidadcrear, Boolean nacionalidadbuscar, Boolean idiomacrear, Boolean idiomabuscar, Boolean departamentocrear, Boolean departamentobuscar
			, Boolean municipiocrear, Boolean municipiobuscar, Boolean gradoacademicocrear, Boolean gradoacademicobuscar, Boolean usuarioscrear, Boolean usuariosbuscar
			, Boolean rolescrear, Boolean rolesbuscar){
		this.codigo=codigo;
		this.nombre=nombre;
		this.fichacrear=fichacrear;
		this.fichabuscar=fichabuscar;
		this.horariocrear=horariocrear;
		this.horariobuscar=horariobuscar;
		this.asignarhorario=asignarhorario;
		this.buscarhorarioasignado=buscarhorarioasignado;
		this.asistenciacrear=asistenciacrear;
		this.asistenciabuscar=asistenciabuscar;
		this.asistenciacargar=asistenciacargar;
		this.pagoscrear=pagoscrear;
		this.pagosbuscar=pagosbuscar;
		this.pagosplanilla=pagosplanilla;
		this.ocupacionescrear=ocupacionescrear;
		this.ocupacionesbuscar=ocupacionesbuscar;
		this.contratacionescrear=contratacionescrear;
		this.contratacionesbuscar=contratacionesbuscar;
		this.estadocivilcrear=estadocivilcrear;
		this.nacionalidadcrear=nacionalidadcrear;
		this.nacionalidadbuscar=nacionalidadbuscar;
		this.idiomacrear=idiomacrear;
		this.idiomabuscar=idiomabuscar;
		this.departamentocrear=departamentocrear;
		this.departamentobuscar=departamentobuscar;
		this.municipiocrear=municipiocrear;
		this.municipiobuscar=municipiobuscar;
		this.gradoacademicocrear=gradoacademicocrear;
		this.gradoacademicobuscar=gradoacademicobuscar;
		this.usuarioscrear=usuarioscrear;
		this.usuariosbuscar=usuariosbuscar;
		this.rolescrear=rolescrear;
		this.rolesbuscar=rolesbuscar;
		
	}
	
	public void nuevo()
	{
		try
		{
			ResultSet resultado = mostrar("SELECT codigorol FROM roles ORDER BY codigorol DESC");
			if(resultado.next())
			{
				this.codigo="RL"+String.valueOf(Integer.parseInt(resultado.getString("codigorol").substring(2))+1);
			}
			else
			{
				this.codigo = "RL10000000";
			}
			query = "INSERT INTO roles VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //33
			parametros = new ArrayList<String>();
			parametros.add(codigo);
			parametros.add(nombre);
			parametros.add(fichacrear.toString());
			parametros.add(fichabuscar.toString());
			parametros.add(horariocrear.toString());
			parametros.add(horariobuscar.toString());
			parametros.add(asignarhorario.toString());
			parametros.add(buscarhorarioasignado.toString());
			parametros.add(asistenciacrear.toString());
			parametros.add(asistenciabuscar.toString());
			parametros.add(asistenciacargar.toString());
			parametros.add(pagoscrear.toString());
			parametros.add(pagosbuscar.toString());
			parametros.add(pagosplanilla.toString());
			parametros.add(ocupacionescrear.toString());
			parametros.add(ocupacionesbuscar.toString());
			parametros.add(contratacionescrear.toString());
			parametros.add(contratacionesbuscar.toString());
			parametros.add(estadocivilcrear.toString());
			parametros.add(nacionalidadcrear.toString());
			parametros.add(nacionalidadbuscar.toString());
			parametros.add(idiomacrear.toString());
			parametros.add(idiomabuscar.toString());
			parametros.add(departamentocrear.toString());
			parametros.add(departamentobuscar.toString());
			parametros.add(municipiocrear.toString());
			parametros.add(municipiobuscar.toString());
			parametros.add(gradoacademicocrear.toString());
			parametros.add(gradoacademicobuscar.toString());
			parametros.add(usuarioscrear.toString());
			parametros.add(usuariosbuscar.toString());
			parametros.add(rolescrear.toString());
			parametros.add(rolesbuscar.toString()); //33
			sentenciaConnection(query, parametros);
		}catch(Exception ex)
		{
			JOptionPane.showMessageDialog(null, ex.toString());
		}
	}
	
	public void modificar()
	{
		query = "UPDATE roles SET nombre=?, fichacrear=?, fichabuscar=?, horariocrear=?, horariobuscar=?,asignarhorario=?" +
				", buscarhorarioasignado=?, asistenciacrear=?,asistenciabuscar=?,asistenciacargar=?,pagoscrear=?" +
				", pagosbuscar=?, pagosplanilla=?, ocupacionescrear=?, ocupacionesbuscar=?, estadocivilcrear=?" +
				", contratacionescrear=?, contratacionesbuscar=?, nacionalidadcrear=?, nacionalidadbuscar=?, idiomacrear=?, idiomabuscar=?, departamentocrear=?" +
				", departamentobuscar=?, municipiocrear=?, municipiobuscar=?, gradoacademicocrear=?, gradoacademicobuscar=?" +
				", usuarioscrear=?, usuariosbuscar=?, rolescrear=?, rolesbuscar=? WHERE codigorol=?";
		parametros = new ArrayList<String>();
		parametros.add(nombre);
		parametros.add(fichacrear.toString());
		parametros.add(fichabuscar.toString());
		parametros.add(horariocrear.toString());
		parametros.add(horariobuscar.toString());
		parametros.add(asignarhorario.toString());
		parametros.add(buscarhorarioasignado.toString());
		parametros.add(asistenciacrear.toString());
		parametros.add(asistenciabuscar.toString());
		parametros.add(asistenciacargar.toString());
		parametros.add(pagoscrear.toString());
		parametros.add(pagosbuscar.toString());
		parametros.add(pagosplanilla.toString());
		parametros.add(ocupacionescrear.toString());
		parametros.add(ocupacionesbuscar.toString());
		parametros.add(estadocivilcrear.toString());
		parametros.add(contratacionescrear.toString());
		parametros.add(contratacionesbuscar.toString());
		parametros.add(nacionalidadcrear.toString());
		parametros.add(nacionalidadbuscar.toString());
		parametros.add(idiomacrear.toString());
		parametros.add(idiomabuscar.toString());
		parametros.add(departamentocrear.toString());
		parametros.add(departamentobuscar.toString());
		parametros.add(municipiocrear.toString());
		parametros.add(municipiobuscar.toString());
		parametros.add(gradoacademicocrear.toString());
		parametros.add(gradoacademicobuscar.toString());
		parametros.add(usuarioscrear.toString());
		parametros.add(usuariosbuscar.toString());
		parametros.add(rolescrear.toString());
		parametros.add(rolesbuscar.toString());
		parametros.add(codigo);
		sentenciaConnection(query, parametros);
	}
	
	public void eliminar()
	{
		query = "DELETE FROM roles WHERE codigorol=?";
		parametros = new ArrayList<String>();
		parametros.add(codigo);
		sentenciaConnection(query, parametros);
	}
	
	public ResultSet mostrar()
	{
		if(codigo!=null && codigo!="")
		{
			query = "SELECT * FROM roles WHERE codigorol='"+this.codigo+"'";
		}
		else
		{
			query = "SELECT * FROM roles";
		}
		
		return consultaConnection(query);
	}
	
	public ResultSet mostrar(String queryref)
	{
		return consultaConnection(queryref);
	}
	
	public ResultSet mostrar(String queryref, ArrayList<String> parametrosref)
	{
		return consultaConnection(queryref, parametrosref);
	}
}
